package com.wei.frame.ui.lifecycle;

import javax.annotation.CheckReturnValue;
import javax.annotation.Nonnull;

import io.reactivex.Observable;

/**
 * 作者：赵若位
 * 时间：2020/8/20 10:42
 * 邮箱：1070138445@qq.com
 * 功能：
 */
public interface LifecycleProvider<E>
{
    @Nonnull
    @CheckReturnValue
    Observable<E> lifecycle();

    @Nonnull
    @CheckReturnValue
    <T> LifecycleTransformer<T> bindUntilEvent(@Nonnull E event);

    @Nonnull
    @CheckReturnValue
    <T> LifecycleTransformer<T> bindToLifecycle();
}
